From db48cd3e4a72864620b6d793268d068ad05ee28d Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Fri, 16 Jul 2004 12:33:34 +0000 Subject: [PATCH] bitkeeper revision 1.1099.1.1 (40f7cb1eMTkl14JJIaobtE7X06GRng) Small fixes --- .../arch/xen/drivers/blkif/backend/vbd.c | 23 ++++++++----------- xen/arch/x86/domain.c | 10 +++++++- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/vbd.c b/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/vbd.c index 134e94ef26..7b423c4fcf 100644 --- a/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/vbd.c +++ b/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/vbd.c @@ -126,33 +126,30 @@ void vbd_grow(blkif_be_vbd_grow_t *grow) x->next = (blkif_extent_le_t *)NULL; gd = get_gendisk(x->extent.device); - - if (!gd || !gd->part) + if ( (gd == NULL) || (gd->part == NULL) ) { grow->status = BLKIF_BE_STATUS_VBD_NOT_FOUND; DPRINTK("vbd_grow: device %08x doesn't exist.\n", x->extent.device); goto out; } - hd = &gd->part[MINOR(x->extent.device)]; - - if (!hd) + if ( (hd = &gd->part[MINOR(x->extent.device)]) == NULL ) { grow->status = BLKIF_BE_STATUS_VBD_NOT_FOUND; DPRINTK("vbd_grow: HD device %08x doesn't exist.\n", x->extent.device); goto out; } - printk("vbd_grow: requested_len %llu actual_len %lu\n", - x->extent.sector_length, hd->nr_sects ); + DPRINTK("vbd_grow: requested_len %llu actual_len %lu\n", + x->extent.sector_length, hd->nr_sects); - /* this test assumes sector_start is zero, which in the new - IO world it always will be -- We need to simpligy the - grow/shrink interface as we'll always be deadling with whole - devices - */ + /* + * NB. This test assumes sector_start == 0, which is always the case + * in Xen 1.3. In fact the whole grow/shrink interface could do with + * some simplification. + */ if ( x->extent.sector_length > hd->nr_sects ) - x->extent.sector_length = hd->nr_sects; + x->extent.sector_length = hd->nr_sects; for ( px = &vbd->extents; *px != NULL; px = &(*px)->next ) continue; diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 52eee6113e..55293ed973 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -197,9 +197,17 @@ void machine_restart(char * __unused) panic("Need to reinclude BIOS reboot code\n"); } + +void __attribute__((noreturn)) __machine_halt(void *unused) +{ + for ( ; ; ) + __asm__ __volatile__ ( "cli; hlt" ); +} + void machine_halt(void) { - while(1){ safe_halt(); } + smp_call_function(__machine_halt, NULL, 1, 1); + __machine_halt(NULL); } void arch_do_createdomain(struct domain *d) -- 2.30.2